type Mutable[T] native // rx.Mutable

type Buffer native  // rx.Buffer


// Mutable

public function
    Mutable[T] { initial T } Observable[Mutable[T]]
    native('__Mutable')

function
    MutableRead[T] { m Mutable[T] } Observable[T]
    native('__MutableRead')

function
    MutableWrite[T] { m Mutable[T], value T } Observable[None]
    native('__MutableWrite')

public method
    Mutable.Read Observable[T]
    { MutableRead(this) }

public method
    Mutable.Write Lambda[T,Observable[None]]
    { { (value) => MutableWrite(this, value) } }

// TODO: buffer operations


